//
//  MyPlugin.m
//  DCTestUniPlugin
//
//  Created by yicheng on 2024/4/18.
//  Copyright © 2024 DCloud. All rights reserved.
//

#import "MyPlugin.h"
#import "BDASignalManager.h"

@implementation MyPlugin

// 通过宏 UNI_EXPORT_METHOD 将异步方法暴露给 js 端
UNI_EXPORT_METHOD(@selector(byteAsyncDance:domain:callBack:))

/// 异步方法（注：异步方法会在主线程（UI线程）执行）
/// @param callback 回调方法，回传参数给 js 端
- (void)byteAsyncDance:(NSString *)appId domain:(NSString *)domain callBack:(UniModuleKeepAliveCallback)callback {
    
    NSLog(@"异步uni传的appid =%@",appId);
    [BDASignalManager registerWithOptionalData:@{
            kBDADSignalSDKUserUniqueId : appId}];

    NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    if (callback) {
        callback(idfv,NO);
    }
}

// 通过宏 UNI_EXPORT_METHOD_SYNC 将同步方法暴露给 js 端
UNI_EXPORT_METHOD_SYNC(@selector(byteSyncDance:))

/// 同步方法（注：同步方法会在 js 线程执行）
/// @param appId js 端调用方法时传递的参数
- (NSString *)byteSyncDance:(NSString *)appId {
    // options 为 js 端调用此方法时传递的参数
    NSLog(@"同步uni传的appid =%@",appId);

    /*
     可以在该方法中实现原生功能，然后直接通过 return 返回参数给 js
     */
    [BDASignalManager registerWithOptionalData:@{
            kBDADSignalSDKUserUniqueId : appId}];

    NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

    // 同步返回参数给 js 端 注：只支持返回 String 或 NSDictionary (map) 类型
    return idfv;
}

@end
